Custom Exceptions তৈরি এবং হ্যান্ডল করা

Exception Handling (এক্সেপশন হ্যান্ডলিং) - প্যাসক্যাল (Pascal) - Computer Programming

179

প্যাসক্যাল ভাষায়, এক্সপশন হ্যান্ডলিং সাধারণত try..except ব্লক দিয়ে করা হয়, যা কোডের ত্রুটি বা এক্সপশন ধরা এবং সেগুলিকে সঠিকভাবে হ্যান্ডল করার জন্য ব্যবহৃত হয়। কখনও কখনও প্রোগ্রামে কিছু নির্দিষ্ট পরিস্থিতি বা ত্রুটির জন্য কাস্টম এক্সপশন তৈরি করা প্রয়োজন হয়। প্যাসক্যাল ভাষায় কাস্টম এক্সপশন তৈরি এবং হ্যান্ডল করার জন্য আপনাকে কিছু অতিরিক্ত ধাপ অনুসরণ করতে হবে।


কাস্টম এক্সপশন তৈরি করা

প্যাসক্যাল ভাষায় কাস্টম এক্সপশন তৈরি করতে হলে প্রথমে একটি নতুন Exception Class তৈরি করতে হয়, যা Exception ক্লাস থেকে উত্তরাধিকার (inheritance) নেয়।

কাস্টম এক্সপশন তৈরি করার উদাহরণ:

ধরা যাক, আমরা একটি কাস্টম এক্সপশন তৈরি করব যার নাম হবে InvalidAgeException। এটি তখন ব্যবহার করা হবে যখন ইউজার অবৈধ বয়স ইনপুট করবে (যেমন, ০ বা ঋণাত্মক বয়স)।

program CustomExceptionExample;
uses
  SysUtils;  { System Unit }

type
  InvalidAgeException = class(Exception)
  public
    constructor Create; overload;
    constructor Create(msg: string); overload;
  end;

constructor InvalidAgeException.Create;
begin
  inherited Create('Invalid Age Exception');
end;

constructor InvalidAgeException.Create(msg: string);
begin
  inherited Create(msg);
end;

var
  age: Integer;
begin
  writeln('Enter your age:');
  readln(age);

  try
    if age <= 0 then
      raise InvalidAgeException.Create('Age must be a positive integer!');
      
    writeln('Your age is: ', age);
    
  except
    on E: InvalidAgeException do
      writeln('Error: ', E.Message);
  end;
end.

এখানে:

  • InvalidAgeException একটি কাস্টম এক্সপশন ক্লাস যা Exception থেকে উত্তরাধিকার নেয়।
  • Create কনস্ট্রাক্টরটি এক্সপশন মেসেজ নির্ধারণ করতে ব্যবহৃত হয়।
  • raise কিওয়ার্ডটি এক্সপশন উঠানোর জন্য ব্যবহৃত হয়।

কাস্টম এক্সপশন হ্যান্ডলিং

কাস্টম এক্সপশন হ্যান্ডল করতে, আপনি try..except ব্লক ব্যবহার করেন, যেখানে আপনি কাস্টম এক্সপশনটির জন্য একটি বিশেষ on হ্যান্ডলার প্রদান করেন।

উদাহরণ: কাস্টম এক্সপশন হ্যান্ডলিং

program CustomExceptionHandling;
uses
  SysUtils;  { System Unit }

type
  NegativeNumberException = class(Exception)
  public
    constructor Create; overload;
    constructor Create(msg: string); overload;
  end;

constructor NegativeNumberException.Create;
begin
  inherited Create('Negative number exception occurred!');
end;

constructor NegativeNumberException.Create(msg: string);
begin
  inherited Create(msg);
end;

var
  num: Integer;
begin
  writeln('Enter a number:');
  readln(num);

  try
    if num < 0 then
      raise NegativeNumberException.Create('Number cannot be negative!');
    
    writeln('You entered: ', num);
    
  except
    on E: NegativeNumberException do
      writeln('Error: ', E.Message);
    else
      writeln('An unknown error occurred.');
  end;
end.

এই প্রোগ্রামে:

  • যখন num ঋণাত্মক হয়, তখন কাস্টম এক্সপশন NegativeNumberException উঠানো হয়।
  • try..except ব্লকে সেই এক্সপশনটি হ্যান্ডল করা হয় এবং মেসেজটি ইউজারের কাছে প্রদর্শিত হয়।

কাস্টম এক্সপশন এর উপকারিতা

  1. বিশেষ পরিস্থিতি চিহ্নিত করা: আপনি কাস্টম এক্সপশন তৈরি করে বিশেষ ধরনের ত্রুটি চিহ্নিত করতে পারেন যা সাধারণ Exception ক্লাসের দ্বারা কভার করা হয় না।
  2. বিষদ বার্তা প্রদান: কাস্টম এক্সপশন ব্যবহার করে আপনি আরো নির্দিষ্ট এবং পরিষ্কার বার্তা প্রদান করতে পারেন, যা ডেভেলপারদের ত্রুটি সমাধান করতে সাহায্য করে।
  3. বিপজ্জনক ভুল এড়ানো: কাস্টম এক্সপশন তৈরি করে আপনি এমন ভুল থেকে রক্ষা পেতে পারেন যা স্বাভাবিকভাবে কোডের অন্যান্য অংশে সমস্যা সৃষ্টি করতে পারে।

সারাংশ

প্যাসক্যাল ভাষায় কাস্টম এক্সপশন তৈরি এবং হ্যান্ডল করা খুবই শক্তিশালী একটি ফিচার যা বিশেষ ত্রুটির ক্ষেত্রে প্রোগ্রামটির সঠিক কার্যক্রম নিশ্চিত করতে সাহায্য করে। Exception ক্লাস থেকে উত্তরাধিকার নিয়ে কাস্টম এক্সপশন তৈরি করা যায়, এবং try..except ব্লক দিয়ে ত্রুটির সময় কাস্টম এক্সপশনটি হ্যান্ডল করা যায়। এটি প্রোগ্রামিংয়ে আরও উন্নত এবং নিরাপদ প্রোগ্রাম তৈরি করতে সহায়ক।

Content added By
Promotion

Are you sure to start over?

Loading...